require(toolboxH)
## Lade nötiges Paket: toolboxH
## Lade nötiges Paket: data.table
## Lade nötiges Paket: R.utils
## Lade nötiges Paket: R.oo
## Lade nötiges Paket: R.methodsS3
## R.methodsS3 v1.8.1 (2020-08-26 16:20:06 UTC) successfully loaded. See ?R.methodsS3 for help.
## R.oo v1.24.0 (2020-08-26 16:11:58 UTC) successfully loaded. See ?R.oo for help.
##
## Attache Paket: 'R.oo'
## Das folgende Objekt ist maskiert 'package:R.methodsS3':
##
## throw
## Die folgenden Objekte sind maskiert von 'package:methods':
##
## getClasses, getMethods
## Die folgenden Objekte sind maskiert von 'package:base':
##
## attach, detach, load, save
## R.utils v2.11.0 (2021-09-26 08:30:02 UTC) successfully loaded. See ?R.utils for help.
##
## Attache Paket: 'R.utils'
## Das folgende Objekt ist maskiert 'package:utils':
##
## timestamp
## Die folgenden Objekte sind maskiert von 'package:base':
##
## cat, commandArgs, getOption, inherits, isOpen, nullfile, parse,
## warnings
## Lade nötiges Paket: fdrtool
## Lade nötiges Paket: png
## Lade nötiges Paket: RColorBrewer
## Lade nötiges Paket: readxl
## Lade nötiges Paket: scales
## Lade nötiges Paket: stringr
## Lade nötiges Paket: testthat
##
## Attache Paket: 'testthat'
## Das folgende Objekt ist maskiert 'package:R.oo':
##
## equals
## Lade nötiges Paket: eulerr
##
## Attache Paket: 'toolboxH'
## Das folgende Objekt ist maskiert 'package:eulerr':
##
## venn
require(ggplot2)
## Lade nötiges Paket: ggplot2
require(scales)
require(stringr)
require(ggthemes)
## Lade nötiges Paket: ggthemes
require(lubridate)
## Lade nötiges Paket: lubridate
##
## Attache Paket: 'lubridate'
## Die folgenden Objekte sind maskiert von 'package:data.table':
##
## hour, isoweek, mday, minute, month, quarter, second, wday, week,
## yday, year
## Die folgenden Objekte sind maskiert von 'package:base':
##
## date, intersect, setdiff, union
irland = fread("C:/Users/IMISE/Nextcloud/saxocov/ireland/COVID-19_HPSC_Detailed_Statistics_Profile.csv") # https://covid-19.geohive.ie/datasets/d8eb52d56273413b84b0187a4e9117be_0/about
irland[,unique(paste(X,Y))]
## [1] "-7.692596 53.288234"
irlandm = melt(irland, id.vars = c("X", "Y", "Date", "StatisticsProfileDate"))
unique(irlandm$variable)
## [1] ConfirmedCovidCases TotalConfirmedCovidCases
## [3] ConfirmedCovidDeaths TotalCovidDeaths
## [5] CovidCasesConfirmed HospitalisedCovidCases
## [7] RequiringICUCovidCases HealthcareWorkersCovidCases
## [9] ClustersNotified HospitalisedAged5
## [11] HospitalisedAged5to14 HospitalisedAged15to24
## [13] HospitalisedAged25to34 HospitalisedAged35to44
## [15] HospitalisedAged45to54 HospitalisedAged55to64
## [17] Male Female
## [19] Unknown Aged1to4
## [21] Aged5to14 Aged15to24
## [23] Aged25to34 Aged35to44
## [25] Aged45to54 Aged55to64
## [27] Median_Age CommunityTransmission
## [29] CloseContact TravelAbroad
## [31] FID HospitalisedAged65to74
## [33] HospitalisedAged75to84 HospitalisedAged85up
## [35] Aged65to74 Aged75to84
## [37] Aged85up
## 37 Levels: ConfirmedCovidCases ... Aged85up
irlandm[grep("ged", variable), unique(variable)]
## [1] HospitalisedAged5 HospitalisedAged5to14 HospitalisedAged15to24
## [4] HospitalisedAged25to34 HospitalisedAged35to44 HospitalisedAged45to54
## [7] HospitalisedAged55to64 Aged1to4 Aged5to14
## [10] Aged15to24 Aged25to34 Aged35to44
## [13] Aged45to54 Aged55to64 HospitalisedAged65to74
## [16] HospitalisedAged75to84 HospitalisedAged85up Aged65to74
## [19] Aged75to84 Aged85up
## 37 Levels: ConfirmedCovidCases ... Aged85up
irlandm2 = irlandm[grep("ged", variable)]
irlandm2[,type := ifelse(grepl("Hospital", variable), "Hospitalized", "testpositive")]
irlandm2[,agegroup := str_replace_all(variable, "HospitalisedAged|Aged", "")]
irlandm2[,unique(agegroup)] %>% dput
## c("5", "5to14", "15to24", "25to34", "35to44", "45to54", "55to64",
## "1to4", "65to74", "75to84", "85up")
irlandm2[,agegroup2 := ifelse(agegroup=="5", "1to4", agegroup)]
irlandm2[,unique(agegroup2)] %>% dput
## c("1to4", "5to14", "15to24", "25to34", "35to44", "45to54", "55to64",
## "65to74", "75to84", "85up")
irlandm2[,agegroup2 := factor(agegroup2, levels = c("1to4", "5to14", "15to24", "25to34", "35to44", "45to54", "55to64",
"65to74", "75to84", "85up"))]
irlandm3 = irlandm2[,.(value = sum(value, na.rm = T)), .(Date = as_date(Date), type, agegroup2)]
ggplot(irlandm3, aes(Date, value, col = agegroup2)) + geom_point() + facet_wrap(~agegroup2) + scale_y_log10() + theme()
## Warning: Transformation introduced infinite values in continuous y-axis

p2 = ggplot(irlandm3, aes(Date, value, col = agegroup2 ,lty = type)) + geom_line() + scale_y_log10() + theme()
require(plotly)
## Lade nötiges Paket: plotly
##
## Attache Paket: 'plotly'
## Das folgende Objekt ist maskiert 'package:ggplot2':
##
## last_plot
## Das folgende Objekt ist maskiert 'package:stats':
##
## filter
## Das folgende Objekt ist maskiert 'package:graphics':
##
## layout
ggplotly(p2)
## Warning: Transformation introduced infinite values in continuous y-axis
qlist1 = venn2((min(irlandm3$Date):max(irlandm3$Date)) %>% as_date() %>% as.character, irlandm3$Date %>% as.character)

str(qlist1)
## List of 3
## $ q1: chr [1:631] "2020-02-29" "2020-03-03" "2020-03-04" "2020-03-05" ...
## $ q2: chr [1:2] "2020-03-01" "2020-03-02"
## $ q3: chr(0)
irlandm4 = irlandm3[Date>=as_date("2020-03-03")]
qlist2 = venn2((min(irlandm4$Date):max(irlandm4$Date)) %>% as_date() %>% as.character, irlandm4$Date %>% as.character)

str(qlist2)
## List of 3
## $ q1: chr [1:630] "2020-03-03" "2020-03-04" "2020-03-05" "2020-03-06" ...
## $ q2: chr(0)
## $ q3: chr(0)
setorder(irlandm4, type, agegroup2, Date)
irlandm4[,newvalue := value-c(0, value[1:(.N-1)]), .(type, agegroup2) ]
irlandm4[,newvalue7 := frollmean(x = newvalue, n = 14, align = "center"), .(type, agegroup2) ]
p3 = ggplot(irlandm4, aes(Date, newvalue7, col = agegroup2 ,lty = type)) + geom_line() + scale_y_log10() + facet_wrap(~agegroup2) + theme()
p3
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Removed 260 row(s) containing missing values (geom_path).

irlandm4[,newvalue7v2 := ifelse(type =="Hospitalized", newvalue7 *10, newvalue7)]
p4 = ggplot(irlandm4, aes(Date, newvalue7v2, col = type)) + geom_line() + scale_y_log10(limits = c(0.5, 1100)) + facet_wrap(~agegroup2, scales = "free") + theme()
p4
## Warning: Transformation introduced infinite values in continuous y-axis
## Warning: Removed 26 row(s) containing missing values (geom_path).

p5 = ggplot(irlandm4[Date>as_date("2020-08-01")], aes(Date, newvalue7v2, col = type)) + geom_line() + facet_wrap(~agegroup2, scales = "free") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.4, hjust = 0),
legend.position = "top",
axis.text.y.right = element_text(color = "red"),
axis.title.y.right = element_text(color = "red")) +
scale_x_date(breaks = date_breaks(width = '1 months'), date_labels = "%Y-%b") + scale_y_continuous(sec.axis = sec_axis(~ . / 10, name = "N Hospitalized (centered 14-day-mean)"), name = "N Testpositive (centered 14-day-mean)")
p5
## Warning: Removed 14 row(s) containing missing values (geom_path).

irland5 = dcast.data.table(irlandm4[is.na(newvalue7v2)==F],Date +agegroup2 ~ type, value.var = c("newvalue7v2"))
irland5[,ratio := Hospitalized/testpositive]
irlandm6 = melt(irland5, id.vars = c("Date", "agegroup2"))
p6 = ggplot(irlandm6[Date>as_date("2020-08-01")], aes(Date, value, col = variable)) + geom_line() + facet_wrap(~agegroup2, scales = "free") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.4, hjust = 0),
legend.position = "top",
axis.text.y.right = element_text(color = "red"),
axis.title.y.right = element_text(color = "red")) +
# scale_x_date(breaks = date_breaks(width = '1 months'), date_labels = "%Y-%b") +
scale_y_log10(limits = c(0.01, 1100), labels = label_comma(accuracy = 0.01) , breaks= log_breaks(6))
p6
## Warning: Transformation introduced infinite values in continuous y-axis

irlandm6[ variable =="ratio",ratio14 := frollmean(x = value, n = 14, align = "center"), .( agegroup2) ]
p7 = ggplot(irlandm6[Date>as_date("2020-08-01") & variable =="ratio"], aes(Date, value, col = variable)) + geom_line() + facet_wrap(~agegroup2, scales = "free") +
theme(axis.text.x = element_text(angle = 90, vjust = 0.4, hjust = 0),
legend.position = "top",
axis.text.y.right = element_text(color = "red"),
axis.title.y.right = element_text(color = "red")) +
scale_x_date(breaks = date_breaks(width = '1 months'), date_labels = "%Y-%b") +
geom_smooth() +ylab('Ratio hospitalized/Testpositive')
# scale_y_log10(limits = c(0.01, 1100), labels = label_comma(accuracy = 0.01) , breaks= log_breaks(6))
p7
## `geom_smooth()` using method = 'loess' and formula 'y ~ x'
